package com.zenithmind.document.pojo.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

/**
 * 文档上传DTO
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@Schema(description = "文档上传DTO")
public class DocumentUploadDTO {

    /**
     * 上传文件
     */
    @NotNull(message = "上传文件不能为空")
    @Schema(description = "上传文件")
    private MultipartFile file;

    /**
     * 文档标题
     */
    @Schema(description = "文档标题")
    private String title;

    /**
     * 文档描述
     */
    @Schema(description = "文档描述")
    private String description;

    /**
     * 文档分类ID
     */
    @Schema(description = "文档分类ID")
    private String categoryId;

    /**
     * 文档标签
     */
    @Schema(description = "文档标签")
    private String tags;

    /**
     * 访问权限（0:私有, 1:公开, 2:部门, 3:指定用户）
     */
    @Schema(description = "访问权限")
    private Integer accessLevel;

    /**
     * 权限配置
     */
    @Schema(description = "权限配置")
    private String permissionConfig;

    /**
     * 是否加密
     */
    @Schema(description = "是否加密")
    private Boolean isEncrypted;

    /**
     * 是否自动提取内容
     */
    @Schema(description = "是否自动提取内容")
    private Boolean autoExtractContent;

    /**
     * 是否生成预览
     */
    @Schema(description = "是否生成预览")
    private Boolean generatePreview;

    /**
     * 是否生成缩略图
     */
    @Schema(description = "是否生成缩略图")
    private Boolean generateThumbnail;
}
